package com.sgu6.sgu6_machine.network;


import com.sgu6.sgu6_machine.dto.AppUpdateDto;
import com.sgu6.sgu6_machine.dto.CreateMemberCardDto;
import com.sgu6.sgu6_machine.dto.CreateMemberCardParams;
import com.sgu6.sgu6_machine.dto.MachineAccountDto;
import com.sgu6.sgu6_machine.dto.MachineLoginDto;
import com.sgu6.sgu6_machine.dto.MemberCardInfoDto;
import com.sgu6.sgu6_machine.dto.SaleRulesDto;
import com.sgu6.sgu6_machine.dto.SysNoticeDto;
import com.sgu6.sgu6_machine.dto.UpdateMachinePwdDto;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface AdminApiService {

    @POST("/machine/login")
    Call<MachineLoginDto> login(@Body MachineAccountDto machine);

    @PUT("/machine/updatePassword")
    Call<UpdateMachinePwdDto> updatePassword(@Body List<MachineAccountDto> machines);

    @GET("/memberCard/memberCardInfo/internalCode/{cardCode}")
    Call<MemberCardInfoDto> getMemberCardInfo(@Path("cardCode") String cardCode);

    @GET("/app/list")
    Call<AppUpdateDto> getAppList(@Query("page") int page, @Query("pageSize") int pageSize,@Query("versionType") int versionType);

    @GET("/notice/getSysNoticeByType/{type}")
    Call<SysNoticeDto> getSysNoticeByType(@Path("type") int type);

    @GET("/sale/detail/{typeId}/{merchantId}")
    Call<SaleRulesDto> getRechargeRules(@Path("typeId") int typeId, @Path("merchantId") String merchantId);

    @POST("/memberCard")
    Call<CreateMemberCardDto> createMemberCard(@Body CreateMemberCardParams params);
}
